[Dies ist ein Fallbeispiel, das in einem separaten Fenster angezeigt wird. So können Sie das Beispiel und ein beliebiges anderes Hilfethema gleichzeitig betrachten. Das Fenster des Fallbeispiels lässt sich verschieben, in seiner Grösse ändern und über das Schliessfeld verlassen]
Die Autorin erstellt einen interaktiven Quiz ähnlich wie eine schriftliche Klausur. Allerdings kann ein Quiz nur leicht korrigierbare Aufgaben enthalten, nämlich Mehrfachwahl- und Zuordnungsaufgaben. Wenn Sie im Formular 2. Test ausgeben die Schaltfläche '1 Access Quiz exportieren' drücken, werden die folgenden Tabellen generiert:
| Tabellenname | Zweck in QUIZ_BACKEND.MDB |
| QuizFRAGEN | Fragentexte für die Mehrfachwahl- und Zuordnungsaufgaben |
| QuizMEHRFACHWAHL | Alternativen und Lösungen der Mehrfachwahlaufgaben |
| QuizBUCHSTABEN_ALTERNATIVEN | Buchstabenpräfices und -texte der Zuordnungsaufgaben |
| QuizZAHLEN_ALTERNATIVEN | Zahlenpräfices und -texte der Zuordnungsaufgaben |
| QuizZUORDNUNGS_LÖSUNGEN | Korrekte Präfixpaare der Zuordnungslösungen |
| QuizTEST | Identifikation des laufenden Tests |
| SCORESMC | Benutzerantworten auf Mehrfachwahlfragen |
| SCORESZO | Benutzerantworten auf Zuordnungsfragen |
Die gelb markierten Tabellen enthalten die gleichen Tabellen wie jene der entsprechenden schriftlichen Klausur. Die blau markierten Tabellen enthalten nach dem Export nur die Struktur und wenige Initialwerte. Die eigentlichen Daten werden erst nach der Beantwortung der Fragen angefügt:
QuizTEST identifiziert jeden Quiz mit einer eindeutigen Nummer. Die weiteren Felder enthalten die Veranstaltung, das Semester und das Jahr.
Falls der Dozent nicht zulässt, dass die TeilnehmerInnen die Antworten selbst korrigieren, wird der Quizteilnehmer zu Beginn des Tests um die Matrikelnummer gebeten. Diese Identifikation wird nicht in QuizTEST, sondern als Teil des Schlüssels in jeder Scorezeile gespeichert. Jeder Satz von SCORESMC und SCORESZO enthält neben dieser Matrikelnummer, dem Fragenschlüssel und dem Testschlüssel die gegebene Antwort (Benutzerlösung). So lässt sich jede Antwort einem bestimmten Bearbeiter und einem bestimmten Test zuordnen.
Falls die Testautorin die Selbstkorrektur nicht zulässt, werden die Antworten in TESTVERWALTUNG automatisch korrigiert. Dazu fügt die Ereignisprozedur BtnTestAbgeben_Click() die beiden Ergebnistabellen SCORESMC und SCORESZO den gleichnamigen Aggregationstabellen von TESTVERWALTUNG_BACKEND.MDB an.
Die Ereignisprozedur der Schaltfläche 'Als Quizaufgaben exportieren' ist komplex. Wir analysieren Sie deshalb nur entwurfssprachlich. Den entsprechenden VBA-Code finden Sie, wenn Sie in der Entwurfsansicht auf die Schaltfläche BtnQuizexport klicken, dann mit »Alt/Enter die Eigenschaftenliste anzeigen und schliesslich zur Ereignisprozedur BtnQuizexport_Click() verzweigen. Diese Prozedur erstellt QUIZ_BACKEND.MDB nicht vollständig: Einige Tabellen werden zwar aus Testverwaltung_Backend.mdb kopiert, für andere Tabellen wird aber nur die Struktur (Feldnamen und Primärschlüssel) definiert, die Daten werden aber erst während der Beantwortung der Fragen durch die QuizteilnehmerInnen angefügt.
Die unten entworfene Lösung ist eine von mehreren Möglichkeiten. Sie verwendet in erster Linie die von Access angebotene prozedurale Tabellenmanipulation. Statt auf die Unterschiede zwischen DAO (Data Acces Objects) und ADO (ActiveX Data Objects) einzutreten, veranschaulichen wir an einem komplexen Beispiel die Unterschiede zwischen prozeduraler Eintabellen-Manipulationen und deklarativen Mehrtabellen-Abfragen in QBE oder SQL.
Initialisiere die Datenbank QUIZ_BACKEND.MDB '(Primärschlüssel unterstrichen)Lösche die frühere Version von QUIZ_BACKEND.MDB Erstelle eine leere Datenbank QUIZ_BACKEND.MDB Frage, ob Selbstkorrektur gewünscht istQuizMEHRFACHWAHL Definiere die Struktur Fragenschlüssel Alternativenschlüssel Alternativentext 'für Verbundoperationen mit QuizSESSIONEN Lösung Erstelle die Tabelle Kopiere satzweise das Ergebnis einer SQL-Abfrage aus den ... Mehrfachwahl-Aufgaben des gewählten Testtermins mit den Feldern Fragenschlüssel, Alternativentext, Lösung Füge an das Ende jedes Satzes einen Alternativenschlüssel hinzu, der ... die Alternativen jeder Aufgabe von 1 bis 4 durchnummeriertQuizBUCHSTABENPRÄFICES Definiere die Struktur Fragenschlüssel Zahlenpräfix TmpBuchstabenpräfices Erstelle die Tabelle Erstelle aus der normalisierten Tabelle ZUORDNUNGSLÖSUNGEN eine denormalisierte Tabelle TmpBUCHSTABENPRÄFICES mit Wiederholungsgruppen 'Zwei Zeilen [A,1] und [A,2] werden z.B. zu einer einzigen Zeile [A,12]QuizTEST Definiere die Struktur Testschlüssel Veranstaltung SemesterOderQuiz Jahr Erstelle die Tabelle Erstelle den einzigen Satz mit Testschlüssel = -1, falls SelbstkorrekturSCORESMC Definiere die Struktur Fragenschlüssel Alternativenschlüssel Matrikelnummer Testschlüssel BenutzerlösungSCORESZO Definiere die Struktur Fragenschlüssel Matrikelnummer Testschlüssel Zahlenpräfix BuchstabenpräfixExportiere die Ergebnistabellen dr folgenden Abfragen unter den rot geschriebenen Namen 'Eigenschaften wie Indices und Primärschlüssel bleiben nicht erhalten! QUIZQryFragenMitText -> QuizFRAGEN QUIZQryBuchstabenalternativen -> QuizBUCHSTABEN_ALTERNATIVEN QUIZQryZahlenalternativen -> QuizZAHLEN_ALTERNATIVEN QUIZQryZuordnungslösungen -> QuizZUORDNUNGS_LÖSUNGEN